package com.boil.util;

import com.boil.model.MenuInfo;

import java.util.ArrayList;
import java.util.List;

/**
 * 菜单工具类。
 *
 * @author ChenYong
 * @date 2016-09-29
 */
public final class MenuUtils {
    /**
     * 获取登录用户的所有菜单。
     *
     * @return 登录用户的所有菜单
     */
    public static List<MenuInfo> getLoginUserMenus() {
        // 菜单列表
        List<MenuInfo> menus = new ArrayList<MenuInfo>();

        // 首页广告
        MenuInfo menuHomeAdvert = new MenuInfo();
        menuHomeAdvert.setId(100L);
        menuHomeAdvert.setParentId(Constants.ROOT_PARENT_ID);
        menuHomeAdvert.setName("首页广告");
        menuHomeAdvert.setUrl(String.format("web/home/advert/list.html?menuId=%s&menuParentId=%s", menuHomeAdvert.getId(), menuHomeAdvert.getParentId()));
        menuHomeAdvert.setIcon("icon-advert");
        menuHomeAdvert.setLevel(1);
        menuHomeAdvert.setSequence(menuHomeAdvert.getId().intValue());

        // 上传题库
        MenuInfo menuQuestion = new MenuInfo();
        menuQuestion.setId(150L);
        menuQuestion.setParentId(Constants.ROOT_PARENT_ID);
        menuQuestion.setName("上传题库");
        menuQuestion.setUrl(String.format("web/question/list.html?menuId=%s&menuParentId=%s", menuQuestion.getId(), menuQuestion.getParentId()));
        menuQuestion.setIcon("icon-questions");
        menuQuestion.setLevel(1);
        menuQuestion.setSequence(menuQuestion.getId().intValue());

        // 发布通知
        MenuInfo menuNotice = new MenuInfo();
        menuNotice.setId(200L);
        menuNotice.setParentId(Constants.ROOT_PARENT_ID);
        menuNotice.setName("发布通知");
        menuNotice.setUrl(String.format("web/notice/list.html?menuId=%s&menuParentId=%s", menuNotice.getId(), menuNotice.getParentId()));
        menuNotice.setIcon("icon-notice");
        menuNotice.setLevel(1);
        menuNotice.setSequence(menuNotice.getId().intValue());

        // 学习动态
        MenuInfo menuLearnDym = new MenuInfo();
        menuLearnDym.setId(250L);
        menuLearnDym.setParentId(Constants.ROOT_PARENT_ID);
        menuLearnDym.setName("学习动态");
        menuLearnDym.setUrl(String.format("web/learn/dym/list.html?menuId=%s&menuParentId=%s", menuLearnDym.getId(), menuLearnDym.getParentId()));
        menuLearnDym.setIcon("icon-dynamic");
        menuLearnDym.setLevel(1);
        menuLearnDym.setSequence(menuLearnDym.getId().intValue());

        // 学习资料
        MenuInfo menuLearnFile = new MenuInfo();
        menuLearnFile.setId(300L);
        menuLearnFile.setParentId(Constants.ROOT_PARENT_ID);
        menuLearnFile.setName("学习资料");
        menuLearnFile.setUrl(String.format("web/learn/file/list.html?menuId=%s&menuParentId=%s", menuLearnFile.getId(), menuLearnFile.getParentId()));
        menuLearnFile.setIcon("icon-datum");
        menuLearnFile.setLevel(1);
        menuLearnFile.setSequence(menuLearnFile.getId().intValue());

        // 举报情况
        MenuInfo menuReport = new MenuInfo();
        menuReport.setId(350L);
        menuReport.setParentId(Constants.ROOT_PARENT_ID);
        menuReport.setName("举报情况");
        menuReport.setUrl(String.format("web/report/list.html?menuId=%s&menuParentId=%s", menuReport.getId(), menuReport.getParentId()));
        menuReport.setIcon("icon-warning");
        menuReport.setLevel(1);
        menuReport.setSequence(menuReport.getId().intValue());

        // 数据统计
        MenuInfo menuDataCount = new MenuInfo();
        menuDataCount.setId(400L);
        menuDataCount.setParentId(Constants.ROOT_PARENT_ID);
        menuDataCount.setName("数据统计");
        menuDataCount.setIcon("icon-data-count");
        menuDataCount.setLevel(1);
        menuDataCount.setSequence(menuDataCount.getId().intValue());

        // 学习统计
        MenuInfo menuLearnCount = new MenuInfo();
        menuLearnCount.setId(4001L);
        menuLearnCount.setParentId(menuDataCount.getId());
        menuLearnCount.setName("学习统计");
        menuLearnCount.setUrl(String.format("web/learn/count.html?menuId=%s&menuParentId=%s", menuLearnCount.getId(), menuLearnCount.getParentId()));
        menuLearnCount.setIcon("icon-triangle-right");
        menuLearnCount.setLevel(2);
        menuLearnCount.setSequence(menuLearnCount.getId().intValue());

        // 举报统计
        MenuInfo menuReportCount = new MenuInfo();
        menuReportCount.setId(4002L);
        menuReportCount.setParentId(menuDataCount.getId());
        menuReportCount.setName("举报统计");
        menuReportCount.setUrl(String.format("web/report/count.html?menuId=%s&menuParentId=%s", menuReportCount.getId(), menuReportCount.getParentId()));
        menuReportCount.setIcon("icon-triangle-right");
        menuReportCount.setLevel(2);
        menuReportCount.setSequence(menuReportCount.getId().intValue());

        menuDataCount.getChilds().add(menuLearnCount);
        menuDataCount.getChilds().add(menuReportCount);

        // 用户管理
        MenuInfo menuUser = new MenuInfo();
        menuUser.setId(450L);
        menuUser.setParentId(Constants.ROOT_PARENT_ID);
        menuUser.setName("用户管理");
        menuUser.setIcon("icon-user");
        menuUser.setLevel(1);
        menuUser.setSequence(menuUser.getId().intValue());

        // 用户列表
        MenuInfo menuUser1 = new MenuInfo();
        menuUser1.setId(4501L);
        menuUser1.setParentId(menuUser.getId());
        menuUser1.setName("用户列表");
        menuUser1.setUrl(String.format("web/user/list.html?menuId=%s&menuParentId=%s", menuUser1.getId(), menuUser1.getParentId()));
        menuUser1.setIcon("icon-triangle-right");
        menuUser1.setLevel(2);
        menuUser1.setSequence(menuUser1.getId().intValue());

        // 我的信息
        MenuInfo menuUser2 = new MenuInfo();
        menuUser2.setId(4502L);
        menuUser2.setParentId(menuUser.getId());
        menuUser2.setName("我的信息");
        menuUser2.setUrl(String.format("web/user/my.html?menuId=%s&menuParentId=%s", menuUser2.getId(), menuUser2.getParentId()));
        menuUser2.setIcon("icon-triangle-right");
        menuUser2.setLevel(2);
        menuUser2.setSequence(menuUser2.getId().intValue());

        // 修改密码
        MenuInfo menuUser3 = new MenuInfo();
        menuUser3.setId(4503L);
        menuUser3.setParentId(menuUser.getId());
        menuUser3.setName("修改密码");
        menuUser3.setUrl(String.format("web/user/passwd.html?menuId=%s&menuParentId=%s", menuUser3.getId(), menuUser3.getParentId()));
        menuUser3.setIcon("icon-triangle-right");
        menuUser3.setLevel(2);
        menuUser3.setSequence(menuUser3.getId().intValue());

        menuUser.getChilds().add(menuUser1);
        menuUser.getChilds().add(menuUser2);
        menuUser.getChilds().add(menuUser3);

        // 系统管理
        MenuInfo menuSys = new MenuInfo();
        menuSys.setId(500L);
        menuSys.setParentId(Constants.ROOT_PARENT_ID);
        menuSys.setName("系统管理");
        menuSys.setIcon("icon-permission");
        menuSys.setLevel(1);
        menuSys.setSequence(menuSys.getId().intValue());

        // 资源管理
        MenuInfo menuSys1 = new MenuInfo();
        menuSys1.setId(5001L);
        menuSys1.setParentId(menuSys.getId());
        menuSys1.setName("资源管理");
        menuSys1.setUrl(String.format("web/resource/list.html?menuId=%s&menuParentId=%s", menuSys1.getId(), menuSys1.getParentId()));
        menuSys1.setIcon("icon-triangle-right");
        menuSys1.setLevel(2);
        menuSys1.setSequence(menuSys1.getId().intValue());

        // 角色管理
        MenuInfo menuSys2 = new MenuInfo();
        menuSys2.setId(5002L);
        menuSys2.setParentId(menuSys.getId());
        menuSys2.setName("角色管理");
        menuSys2.setUrl(String.format("web/role/list.html?menuId=%s&menuParentId=%s", menuSys2.getId(), menuSys2.getParentId()));
        menuSys2.setIcon("icon-triangle-right");
        menuSys2.setLevel(2);
        menuSys2.setSequence(menuSys2.getId().intValue());

        // 权限管理
        MenuInfo menuSys3 = new MenuInfo();
        menuSys3.setId(5003L);
        menuSys3.setParentId(menuSys.getId());
        menuSys3.setName("权限管理");
        menuSys3.setUrl(String.format("web/permission/list.html?menuId=%s&menuParentId=%s", menuSys3.getId(), menuSys3.getParentId()));
        menuSys3.setIcon("icon-triangle-right");
        menuSys3.setLevel(2);
        menuSys3.setSequence(menuSys3.getId().intValue());

        menuSys.getChilds().add(menuSys1);
        menuSys.getChilds().add(menuSys2);
        menuSys.getChilds().add(menuSys3);

        menus.add(menuHomeAdvert);
        menus.add(menuQuestion);
        menus.add(menuNotice);
        menus.add(menuLearnDym);
        menus.add(menuLearnFile);
        menus.add(menuReport);
        menus.add(menuDataCount);
        menus.add(menuUser);
        menus.add(menuSys);

        return menus;
    }
}